Reasoning about Inherent Parallelism in Object-Oriented Programs using Ownership Types
نویسندگان
چکیده
The principal premise of this paper is that as a field, we do not currently have a suitable conceptual framework for reasoning about inherent parallelism. We have techniques called dependence analysis for determining the safety of parallelization, but these techniques do not provide a basis for abstraction and so do not scale well to entire applications that are large, complex and developed from components. This paper seeks to extend both the principles and practice of parallel programming by proposing a new abstraction for reasoning about inherent parallelism and uses that abstraction to develop a set of sufficient conditions for data parallel loops.
منابع مشابه
Using Ownership to Reason about Inherent Parallelism in Object-Oriented Programs
With the emergence of multi-cores into the mainstream, there is a growing need for systems to allow programmers and automated systems to reason about data dependencies and inherent parallelism in imperative object-oriented languages. In this paper we exploit the structure of object-oriented programs to abstract computational side-effects. We capture and validate these effects using a static typ...
متن کاملSafe Runtime Downcasts With Ownership Types
The possibility of aliasing between objects constitutes one of the primary challenges in understanding and reasoning about correctness of object-oriented programs. Ownership types provide a principled way of specifying statically enforcable restrictions on object aliasing. Ownership types have been used to aid program understanding and evolution, verify absence of data races and deadlocks in mu...
متن کاملReasoning about Oject-oriented Programs That Use Subtypes
Programmers informally reason about object-oriented programs by using subtype relationships to classify the behavior of objects of di erent types and by letting supertypes stand for all their subtypes. We describe formal speci cation and veri cation techniques for such programs that mimic these informal ideas. Our techniques are modular and extend standard techniques for reasoning about program...
متن کاملMojojojo — More Ownership for Multiple Owners
Traditional ownership types organise the heap into a tree. Ownership types can support memory management, real-time systems, concurrency, parallelism, and general purpose reasoning about programs. Trees, however, are too restrictive to describe many real programs, limiting the usability of conventional ownership systems. Multiple ownership organises the heap into a directed acyclic graph, rathe...
متن کاملValidity Invariants and Effects
Object invariants describe the consistency of object states, and are crucial for reasoning about the correctness of object-oriented programs. However, reasoning about object invariants in the presence of object abstraction and encapsulation, arbitrary object aliasing and re-entrant method calls, is difficult. We present a framework for reasoning about object invariants based on a behavioural co...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008